home *** CD-ROM | disk | FTP | other *** search
- """Sample program handling InterSLIP control and showing off EasyDialogs,
- Res and Dlg in the process"""
-
- import EasyDialogs
- import Res
- import Dlg
- import sys
- import interslip
- #
- # Definitions for our resources
- ID_MAIN=512
-
- ITEM_CONNECT=1
- ITEM_DISCONNECT=2
- ITEM_UPDATE=3
- ITEM_QUIT=4
- ITEM_STATUS=5
- ITEM_MESSAGE=6
-
- status2text = ["<idle>", "<wait-modem>", "<dialling>", "<logging in>",
- "<connected>", "<disconnecting>"]
-
-
- def main():
- """Main routine: open resourcefile, open interslip, call dialog handler"""
- try:
- Res.OpenResFile("InterslipControl-1.rsrc")
- except Res.Error, arg:
- EasyDialogs.Message("Cannot open resource file InterslipControl-1.rsrc: "+
- arg[1])
- sys.exit(1)
- try:
- interslip.open()
- except interslip.error, arg:
- EasyDialogs.Message("Cannot open interslip: "+arg[1])
- sys.exit(1)
- do_dialog()
-
- def do_dialog():
- """Post dialog and handle user interaction until quit"""
- my_dlg = Dlg.GetNewDialog(ID_MAIN, -1)
- while 1:
- n = Dlg.ModalDialog(None)
- if n == ITEM_CONNECT:
- do_connect()
- elif n == ITEM_DISCONNECT:
- do_disconnect()
- elif n == ITEM_UPDATE:
- status, msg = do_status()
-
- # Convert status number to a text string
- try:
- txt = status2text[status]
- except IndexError:
- txt = "<unknown state %d>"%status
-
- # Set the status text field
- tp, h, rect = my_dlg.GetDialogItem(ITEM_STATUS)
- Dlg.SetDialogItemText(h, txt)
-
- # Set the message text field
- tp, h, rect = my_dlg.GetDialogItem(ITEM_MESSAGE)
- Dlg.SetDialogItemText(h, msg)
- elif n == ITEM_QUIT:
- break
-
- def do_connect():
- """Connect, posting error message in case of failure"""
- try:
- interslip.connect()
- except interslip.error, arg:
- EasyDialogs.Message("Cannot connect: "+arg[1])
-
- def do_disconnect():
- """Disconnect, posting error message in case of failure"""
- try:
- interslip.disconnect()
- except interslip.error, arg:
- EasyDialogs.Message("Cannot disconnect: "+arg[1])
-
- def do_status():
- """Get status as (state_index, message),
- posting error message in case of failure"""
- try:
- status, msgnum, msg = interslip.status()
- except interslip.error, arg:
- EasyDialogs.Message("Cannot get status: "+arg[1])
- return 0, ''
- return status, msg
-
-
- main()
-